package com.shiyanlou.upms.system.service.impl;

import com.shiyanlou.upms.system.dao.UpmsLogMapper;
import com.shiyanlou.upms.system.domain.UpmsLog;
import com.shiyanlou.upms.system.service.UpmsLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
/*@Service("upmsLogService") 是 Spring 框架提供的一个注解，用于将一个类标记为一个服务层的组件，并指定该组件的名称为 "upmsLogService"。
具体来说，@Service 注解用于标记一个类，表示该类是服务层（Service）的组件，
Spring 在初始化时会将其实例化并注册为一个 bean。通过指定名称为 "upmsLogService"，可以在其他地方通过名称来引用该服务层组件。*/
@Service("upmsLogService")
public class UpmsLogServiceImpl implements UpmsLogService {

    @Autowired
    private UpmsLogMapper upmsLogMapper;

    @Override
    public int deleteByPrimaryKey(Integer logId) {
        return upmsLogMapper.deleteByPrimaryKey(logId);
    }
/*@Async 是一个 Spring 框架提供的注解，用于标记一个方法为异步方法。

在使用 @Async 注解的方法中，Spring 会使用一个独立的线程来执行该方法，而不会阻塞当前线程。这样可以提高系统的并发能力和响应速度。*/
    @Async
    @Override
    public int insert(UpmsLog record) {
        return upmsLogMapper.insert(record);
    }

    @Async
    @Override
    public int insertSelective(UpmsLog record) {
        return upmsLogMapper.insertSelective(record);
    }

    @Override
    public UpmsLog selectByPrimaryKey(Integer logId) {
        return upmsLogMapper.selectByPrimaryKey(logId);
    }

    @Override
    public int updateByPrimaryKeySelective(UpmsLog record) {
        return upmsLogMapper.updateByPrimaryKeySelective(record);
    }

    @Override
    public int updateByPrimaryKey(UpmsLog record) {
        return upmsLogMapper.updateByPrimaryKey(record);
    }

    @Override
    public List<UpmsLog> list(Map<String, Object> map) {
        return upmsLogMapper.list(map);
    }

    @Override
    public int count(Map<String, Object> map) {
        return upmsLogMapper.count(map);
    }
}
